1. Technical Field
This invention relates generally to efficient communication over packet switching networks. More particularly, the invention proposes a rate-based congestion control mechanism to send data, audio and videos over packet networks such as the Internet. The invention improves the efficiency in transferring data, audio and video over of the wired and especially the wireless Internet Protocol.
2. Description of the Related Art
The use of the Internet to carry potentially high-quality video is continuously growing. Integration of quality adaptive encoding schemes, forward error correction techniques and congestion control algorithms is crucial to provide an effective video delivering system. Encoding drastically reduces the number of bits used to transmit the video; error correction techniques ensure loss resilience by adding redundancy data; congestion control algorithms discover the available bandwidth into the network. Integration of congestion control with quality adaptation is the key strategy to provide efficient video delivering over time varying capacity networks, such as the Internet, so that when the available bandwidth is scarce a low quality video is transmitted whereas, when an abundant bandwidth is available, video of improved quality is delivered. A generic video delivering system, which integrates all the functions described above, is shown in FIG. 1 and consists of the following modules:                The Rate Controller, which throttles the transmission rate and reports to the Bandwidth Allocator module the available bandwidth and the loss rate.        The Bandwidth Allocator, which allocates the available bandwidth to the Layer Selector and the Loss Resilience blocks by taking into account the available bandwidth and the loss rate.        The Layer Selector selects the layers to be sent by taking into account the share of available bandwidth assigned by the Bandwidth Allocator and the state of the client buffer.        The Loss Resilience block adds redundancy data to the layers by taking into account the loss rate and the share of bandwidth assigned by the Bandwidth Allocator.        The Receiver, which sends the feedback information to the Rate Controller to establish a closed-loop control.        
Traditional video encoders assume constant network capacity and low loss rate thus creating bit streams that have poor quality when transported over the Internet where both bandwidth and loss rate are unpredictable and time-varying. Either a higher loss rate or a lower bandwidth would produce visual artifacts that propagate with time. Such encoders are not well suited for a video delivering system where the key issue is to properly regulate the quality of the delivered video and the amount of FEC codes to match the available bandwidth and to compensate the packet loss rate.
Over the years, several solutions have been proposed for encoding and transmitting video streams over time-varying networks. One-layer Encoding achieves a trade-off between compression and resilience to errors by properly choosing the Intra-blocks to encode without temporal prediction (i.e. without taking into account the contents of previous or successive frames) in order to avoid error propagation.
To achieve dynamic quality adaptation, a common solution is to deploy an encoding-specific packet dropping algorithm, which discards packets that contain lower-priority information to match transmission rate with channel bandwidth. This approach provides acceptable results just over a limited range of rates, which in turn depends on the specific media content and on the adopted encoding scheme.
Multiple Description (MD) coders use a multiple description video encoder. MD encoding addresses the problem of encoding a source into two bitstreams so that high-quality reconstruction is decodable from the two bitstreams together, while a lower, but still acceptable, quality reconstruction is decodable if either of the two bitstream is lost. MD coders are typically more robust to uncertainties in the channel loss rate at the time of encoding. However, they still require network support to match the varying channel bandwidth.
Simulcast is the simplest technique that has been proposed to achieve quality adaptation; it employs several encoded versions of the same video obtained by varying the target encoding bit-rate. The drawback of the simulcast approach is that the several versions of the same video are independent to each other and data belonging to one version cannot be used by another version. Consequently, when the source switches the quality of the delivered video to match the available bandwidth, the data already sent to the receiver and not yet played back cannot be related to the new ones.
Multicast and Layered Encoding is based on hierarchical encoding techniques, which encode the video in several layers arranged in one base layer and more enhancement layers. The video quality can be progressively adapted by adding layers when more available bandwidth is discovered and striping layers when the available bandwidth decreases. Hierarchical encoding requires sophisticate encoders but guarantees that the layers composing the video can be integrated with each other so that when the sender adds a new layer, the data already sent to the receiver and not yet played back can be integrated with the new ones. Changing the number of transmitted layers to match the available bandwidth relaxes the need for knowing exact channel bandwidth at the time of encoding, which helps to decouple transport and encoding algorithms. The decoupling allows gradual integration of improved hierarchical encoders with sophisticated rate control algorithms to take place incrementally.
During the last decade, research on congestion control algorithms has been quite active. It has been essentially focused on congestion control for “best effort” reliable traffic. The current version of Transmission Control Protocol (TCP) congestion control is still largely based on the cornerstone paper by Van Jacobson and on its modifications (such as TCP New Reno etc.). It is used in the leading Unix, Linux TCP protocol suite or in the Microsoft Windows® TCP protocol suite.
We list here main modifications proposed for TCP Reno. TCP with Selective Acknowledgments (TCP SACK) introduces a more refined mechanism to acknowledge data. TCP New Reno introduces a mechanism to recover from many losses in a window of data. Westwood+TCP exploits a new paradigm: the key idea of TCP Westwood is to exploit the stream of returning acknowledgment (ACK) packets to estimate the bandwidth that is available for the TCP connection. This bandwidth estimate is then used to adaptively decrease the congestion window and the slow-start threshold after a timeout or three duplicate ACKs.
Classic TCP is window based: this feature causes burstyness in data transmission; bursty data sources not only require large playout buffers at the client side to provide a smooth playout but also experience bursty packet losses that makes difficult the recovery via forward error correction techniques. Hence, while TCP congestion control is well suited for applications not sensitive to delay jitter and abrupt transmission rate changes, such as FTP data transfer, it is not recommendable to deliver video data, whose perceived quality is sensitive to both delay jitter and abrupt changes in the sending rate. To the purpose, several rate based congestion control algorithms have been proposed to be integrated into the general video delivering framework described at the beginning of the section.
A congestion control algorithm well suited for video delivering should ensure a reduced jitter of arriving packets and a smooth dynamics of the transmission rate in order to reduce playout buffering at the receiver. Moreover, friendliness towards Reno sources is necessary to provide a fair bandwidth allocation to flows carrying multimedia and bulk data.
In order to provide friendliness, many control algorithms have been proposed that try to emulate the “long-term” behavior of the Reno algorithm but with a slower responsive dynamics. The TEAR (TCP Emulation at Receivers) rate control algorithm computes the input rate at the receiver and then feeds it back to the sender. The rate is computed by emulating the average long-term throughput of one hypothetic Reno connection traversing the same path of the rate based connection. It has been shown that TEAR does not employ the classic self-clocking mechanism, it is not friendly towards Reno TCP at high loss rate and it does not reduce its sending rate under persistent congestion.
Nowadays, the leading algorithm is the TCP Friendly Rate Control (TFRC), which tries to emulate the long-term behavior of the Reno throughput. TFRC aims at obtaining a smooth transmission rate dynamics along with friendliness towards Reno TCP. To provide friendliness, a TFRC sender emulates the long-term behavior of a Reno connection using the long-term equation model of the Reno throughput. In this way, the TFRC sender computes the transmission rate as a static nonlinear function of the average loss rate, which is sent by the receiver to the sender as feedback report. We have experimented that TFRC is not fair and is not friendly. We have experimented that TFRC experiences a very low performance over wireless links such as in the case of General Packet Radio Service (GPRS), 3G, 4G systems and satellite links, which are characterized by large delays and random loss.
Link layer proposals attempt to hide loss due to wireless links using local retransmissions and perhaps forward error correction over the wireless link. Examples of link layer protocols are Forward Error Correction (FEC) and Automatic Repeat Request (ARQ) that are used in Digital cellular systems, such as TDMA or CDMA.
The present invention drastically improves transport of data, and streaming of audio and video especially over wireless Internet. The present invention also improves real-time streaming of audio and video sources.